<?php

namespace system\Model;

class Notificacoes extends SystemAppModel {

    public $_table = "notificacoes";
    public $_view = "vw_notificacoes";
    protected $controller_id = 161;

    public function filter()
    {
        $where = "usuarios_id = " . $_SESSION["authe"]["USER"]["USUARIO_ID"];
        return $where;
    }

    public function getNotificacoes(){
        $grupo = $_SESSION["authe"]["USER"]["GROUP"]["ID"];
        $rs = $this->select()->from("VW_NOTIFICACOES")->where("(validade is null or validade >= sysdate) and (grupos_usuarios_id is null or grupos_usuarios_id = :g)")->order("id desc")->execPrepQuery(["g"=>$grupo]);
        return $rs;
    }

    public function getNotificacao($id){
        $rs = $this->select("*")->from("VW_NOTIFICACOES")->where("id=:id")->execPrepQuery(["id"=>$id]);
        return $rs[0];
    }

    public function getLastNotification(){
        $grupo = $_SESSION["authe"]["USER"]["GROUP"]["ID"];
        $rs = $this->select("*")->from("VW_NOTIFICACOES")->where("rownum <= 1 and (validade is null or validade >= sysdate) and (grupos_usuarios_id is null or grupos_usuarios_id = $grupo)")->order("data desc")->executeQuery();
        return (count($rs) > 0) ? $rs[0] : null;
    }

    public function getGrupos(){
        $grupo = $_SESSION["authe"]["USER"]["GROUP"]["ID"];
        $rs = $this->select()->from("grupos_usuarios")->where("id=:g")->order("descricao")->execPrepQuery(["g"=>$grupo]);
        return $rs;
    }
	
}